const jwt = require('jsonwebtoken')

class Token {
    constructor(data){
        this.data = data
        this.SECRET = '@!YJWL%$&',
        this.DEP = '36500d' // 过期时间：如60，"2 days"，"10h"，"7d"，含义是：过期时间
    }
    // 创建token
    createToken(){
        return new Promise((resolve,reject) =>{
            jwt.sign(this.data,this.SECRET,{
                expiresIn: this.DEP  
            },(error,token) =>{
                if(error){  // 创建
                    resolve(false)
                }else{
                    resolve(token)
                }   
            })
        })
    }
    // 严重token
    verifyToken(){
        return new Promise((resolve,reject) =>{
            jwt.verify(this.data,this.SECRET,(error, decoded) =>{
                if(error) {  // token 无效
                    resolve(false)
                }else{
                    resolve(decoded)
                }
                // 进行逻辑处理，拿到ID后，去数据库去数据，看看有没有对应的用户
                next()
            })
        })
    }
}

module.exports = Token